home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / copascal.arc / COPASCAL.DOC < prev    next >
Text File  |  1985-12-03  |  4KB  |  103 lines

  1.  
  2.                    C  o  -  P  A  S  C  A  L          v2.0
  3.                  _____________________________
  4.  
  5.  
  6.      CP/M & MS-DOS implementations by :  Charles Schoening
  7.                                          4012  Fulford St.
  8.                                          Olney, MD   20832
  9.  
  10.  
  11.  
  12.   I. Notes about the Co-Pascal Compiler
  13.      _____________________________________
  14.  
  15.  
  16.      Co-Pascal is an extension of the Pascal-S
  17.      compiler (itself a subset of Pascal)
  18.      developed by Nikalus Wirth.  Modifications
  19.      to the Pascal-C compiler were suggested by
  20.      M. Ben-Ari in Principles of Concurrent
  21.      Programming and implemented on a DEC VAX by
  22.      Barry Burd of Drew University.  I enhanced
  23.      and modified the code to run under CP/M and
  24.      MS-DOS.  Co-Pascal is written in Pascal and
  25.      optimized to run under Turbo-Pascal(tm).
  26.  
  27.      Co-Pascal currently provides an excellent
  28.      environment for experimenting with
  29.      concurrent programming.  It's well suited
  30.      for designing and testing of algorithums,
  31.      but it is not a full Pascal compiler and
  32.      does have some unfortunate restrictions.
  33.      For this reason, hoping that users will
  34.      enhance and update the compiler, and because
  35.      it a good chance to tinker with a compiler,
  36.      I am providing the Co-Pascal compiler in
  37.      its source code.
  38.  
  39.  
  40.  
  41.  II. List of Known Problems and/or Limitations of Co-Pascal
  42.      ______________________________________________________
  43.  
  44.      Some features common to other Pascal compilers are not
  45.      available in Co-Pascal.
  46.  
  47.      Record types are not properly handled; no error or
  48.      warning message is issued.  This improper handling
  49.      of record types MAY apply only to the use of record
  50.      types with the functions WAIT and SIGNAL.
  51.  
  52.      Standard Features NOT supported :
  53.  
  54.        .  Sets, including the 'IN' operator
  55.        .  GOTO and label's.
  56.        .  Pointers
  57.        .  the 'INPUT' parameter is required in EOF and EOLN
  58.           function calls (i.e. EOF(INPUT) ).
  59.        .  File I/O is not yet available.  The READ/WRITE
  60.           procedures for data files are currently under
  61.           construction.
  62.  
  63.      The following limit values are in effect:
  64.  
  65.        .  10 characters in identifier names
  66.        .  200 lines of output
  67.        .  CP/M:   2 concurrent processes
  68.           MS-DOS: 4 concurrent processes
  69.        .  Memory limitations dictate a fixed maximum number of
  70.           procedures which can be executed concurrently at any
  71.           one time.  This number is operating system dependent.
  72.           - CP/M  :  Limit of 2 concurrent processes
  73.           - MS-DOS:  Current limit of 4 concurrent processes.
  74.                      Presumably, this could be increased if
  75.                      necessary.
  76.  
  77.      Some of the above limits may be changed in the constant
  78.      declaration area of the source code.
  79.  
  80.      There may be a limit on the number of lines in a source
  81.      program (I'm not sure).
  82.  
  83.      Pre-declared functions :
  84.  
  85.         RANDOM(I) : returns a random INTEGER X such that  0 <= X <= I
  86.  
  87.  
  88.  
  89. III. Operating the Compiler
  90.      ______________________
  91.  
  92.      Command line syntax is :    FNAME /X*
  93.  
  94.      where FNAME is a legal file name with the .TYP optional
  95.      and the <X> option is one of the following :
  96.  
  97.         C :: compile the source code to P-code
  98.         E :: execute a previously compiled P-code
  99.         D :: compile and then execute
  100.  
  101.      * is an optional flag to display debug information
  102.  
  103.